﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Collections;
using Client.Encriptacion.logica;

namespace Client.Encriptacion
{
    class Encriptador
    {
        public BitArray textoEncriptado { get; set; }

        public Encriptador()
        { }

        public BitArray Encripta(string texto, string clave)
        {
            //preprocesamiento (cortar en trozos el texto)
            string[] trozos = ProcesarTexto.Procesar(texto);
            BitArray[] retazos = ProcesarTexto.Transformar(trozos);

            //foreach (BitArray trozo in retazos)
            //Console.WriteLine(IO.BitArrayToString(trozo, 8));
            
            //DES-CFB
            BitArray[] TextoEncriptado_64bits = AlgoritmoCFB.CFB_Encriptar(retazos, clave);
            textoEncriptado = Concatenar.concatenar(TextoEncriptado_64bits);
            Console.WriteLine(IO.BitArrayToString(textoEncriptado, 8));
            
            /*
            //desencriptacion (prueba)
            BitArray[] termino = AlgoritmoCFB.CFB_Desencriptar(TextoEncriptado_64bits, clave);
            for (int i = 0; i < termino.Length; i++)
            {
                resultado = resultado + TransformarABinario.ToByteArray(termino[i]);
            }

            Console.WriteLine(resultado);
            */
            return textoEncriptado;
        }
    }
}
